import { combineReducers } from 'redux';
// state是状态数据的原始值, action={type:'add',data:{}}
// 品牌列表
function brands(state = [], action) {
    switch (action.type) {
        // 新增品牌: 不能直接修改老的状态数据, 应该根据老的状态数据, 生成一个新的状态数据, 然后返回
        case 'add_brand':
            const newArr1=[...state];
            // unshift的返回值是数组的长度
            newArr1.unshift(action.data);
            return newArr1;
            //  删除品牌
        case 'del_brand':
            const newArr2 = state.filter(item => item.id !== action.data);
            return newArr2;
            // 修改
        case 'update_brand':
            // 查找要更新的品牌对象的索引
            const index=state.findIndex(item=>item.id===action.data.id);
            // 创建一个新品牌数组
            const newArr3=[...state];
            // 更新品牌名称
            newArr3[index].name=action.data.name;
            return newArr3;
        // 获取品牌列表
        case 'get_brands':
            return action.data;
        default:
            return state;
    }
}

// 即将要新增的品牌名称
function brandName(state = '', action) {
    switch (action.type) {
        // 更新品牌名称
        case 'reset_brand_name':
            return action.data;
        default:
            return state;
    }
}

// 当前要被更新的品牌对象
function brandCurrent(state = {name:''}, action) {
    switch (action.type) {
        // 更新当前要被修改的品牌信息
        case 'reset_current_brand':
            return action.data;
        default:
            return state;
    }
}


export default combineReducers({brands,brandName,brandCurrent});